package com.ibm.risk.irmp.rule.model;

/**
 * 比较运算
 * @author WeiYZZhou
 */

public enum CompareOperator {

    EQUAL("=="),
    NOT_EQUAL("!="),
    GREAT_THAN(">"),
    GREAT_THAN_EQUAL(">="),
    LESS_THAT("<"),
    LESS_THAT_EQUAL("<="),
    /**
     * 含有，如[1,2,3]含有2
     */
    CONTAINS("contains"),
    /**
     * 包含任一，如[1,2,3]包含[5,3]中的3，也就是两个集合交集不为空
     */
    CONTAINS_ANY("containsAny"),
    /**
     * 全包含，如[1,2,3]全包含[1,3]
     */
    CONTAINS_ALL("containsAll"),
    /**
     * 不包含任一，如[1,2,3]不包含[5,6]中任一元素，也就是两个集合交集为空
     */
    CONTAINS_NONE("containsNone"),
    /**
     * 模糊匹配，如"abcd" like "ab*", "ab?d"
     */
    LIKE("like"),
    /**
     * 在之中，如 2 in [2,3,4]
     */
    IN("in"),
    /**
     * 不在之中，如 1 notIn [2,3,4]
     */
    NOT_IN("notIn"),
    /**
     * 正则匹配，如 "abcd" matches "ab.*"
     */
    MATCHES("matches");
    private String value;

    CompareOperator(String value) {
        this.value = value;
    }

    public String value() {
        return value;
    }
}
